<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>
relish programming language
</title>

<meta name="keywords" content="relish programming language web application development framework persistence" />
 <meta name="description" content="Home page for relish(TM), an application programming language which includes a simple full-stack web application framework and transparent persistence. Focus is on simplicity and minimalism via very strict enforcement of conventions. The name comes from the language's inbuilt construct of relations between datatypes. A programmer can express an entity-relation model of the application domain directly in the language then associate instances. Methods are owned by tuples of datatypes, and are dispatched by multi-argument multimethod dispatch.
relish is implemented in Go, and inherits/wraps some Go features like goroutine concurrency and channels, but is almost entirely unlike Go in language constructs and philosophy." />
 

 <link rel="stylesheet" type="text/css" id="stylesheet"
       href="/styles/default.css" />
 <link rel="stylesheet" type="text/css" id="stylesheet"
       href="/styles/playground.css" />

	<script type="text/javascript">
		
		function help(topic) {
			mywindow = window.open ("/playground/help/" + topic + ".html");
			mywindow.moveTo(150,50);	
			return false;		
		}

		function loadProgram() {
			var sel = document.getElementById("chosenArtfctName");
			var chosenArtfct = sel.options[sel.selectedIndex].value;
			if (chosenArtfct != "-- Choose existing trial program --") {
               location.href = "/playground?artfct=" + chosenArtfct 
            }
		}


        
	</script>
</head>
<body>
<form action="/playground/playAction" method="POST"> 	
  <div id="header">	
  <table>
	<tr>
	  <td>	
        <a href="/"><img src="/relish_logo4_small.png"></a>
      </td>
	  <td>	
         &nbsp; &nbsp;
      </td>
	  <td>	
        <h1><a href="/">relish<span class="trademark">&#8482;</span></a></h1>
      </td>
	  <td style="width: 2em">	
         &nbsp; &nbsp;
      </td>

     
	  <td>
	    <table>
	      <tr>
	        <td>	
              <h2>simple program trial environment</h2>
            </td>
            <td style="width: 1em">	
               &nbsp; &nbsp;
            </td>
            <td>
            	<table>
            		<tr>
            			<td>
                           <h3>Program name &nbsp; <input type="button" class="helpbutton" value="?" onclick="javascrpt:help('program_name')"/> :</h3>            				
            			</td>
            			<td>
                           <input type="text" size="30" name="artfctName" value="{{.name}}" />	            			
            			</td>    
            			<td>
            			</td>              			        			
            		</tr>
            		<tr>
            			<td>
            			</td>
            			<td>
            				<select id="chosenArtfctName" onchange="loadProgram()">
            					<option>-- Choose existing trial program --</option>
            					{{range .programs}}
            					  <option>{{.}}</option>
            					{{end}}
            				</select>
            			</td>  
            			<td>
            			</td>              			          			
            		</tr>
            		<tr>
            		    <td style="text-align: right;">
               	           <h3>Description :</h3>            		    	
            			</td>  
            			<td colspan="2">
            			   <input type="text" size="72" name="description" value="{{.description}}" />	
            			</td>           			
            		</tr>            		            		
            	</table>
            </td>
          </tr>
        </table>
      </td>
    </tr>
  </table>
	 
  </div>
  <!-- <div id="download_button" class="menubutton" onclick="location='/download/'">
	DOWNLOAD
  </div> -->

<div id="content">
<table>	
	<tr>
		<td class="contentside">
<div>
	<h3>Imports &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" class="helpbutton" value="?" onclick="javascript:help('imports')"/></h3>
		<textarea class="code" id="imports" name="imports">{{.importsFileContent}}</textarea>
	<h3>Constants &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" class="helpbutton" value="?" onclick="javascript:help('constants')"/></h3>
    <textarea class="code" id="constants" name="constants">{{.constantsFileContent}}</textarea>
	<h3>Data Types and Relations &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" class="helpbutton" value="?" onclick="javascript:help('types_and_relations')"/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
    <input type="submit" name="action" class="thinbutton" value=" explore program data " /></h3>
	<textarea class="code" id="types" name="types">{{.typesFileContent}}</textarea>
	<p id="copydb">
	<b>Advanced feature for debugging:</b> Copy existing database<br/>
	from artifact: <input type="text" name="dbArtifact" size="33" /> <input type="submit" name="action" value="Copy DB"/>
    </p>
</div>
</td>
<td class="contentside">
	<table>
		<tr>
			<td class="contentside">
                <div>
                  <h3>Methods &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" class="helpbutton" value="?" onclick="javascript:help('methods')"/></h3>
	              <textarea class="code" id="methods" name="methods">{{.methodsFileContent}}</textarea>
                </div>
           </td>
           <td class="contentside">
			<div>
				<h3>Statements of Main Method &nbsp; &nbsp; &nbsp; &nbsp; <input type="button" class="helpbutton" value="?" onclick="javascript:help('main_method_statements')"/></h3>
				<textarea class="code" id="main" name="main">{{.mainFileContent}}</textarea>	

<br/>
			&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="submit" name="action" value="Clear DB">	
			&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
			&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <input type="submit" name="action" value=" Run ">

			</div>
			</td>
		</tr>
        <tr>  
			<td class="contentside" colspan="2">
				<h3>Output Console</h3>
			    <textarea class="codewide" id="console" name="console">{{.consoleOutput}}</textarea>
			</td>
		</tr>
	</table>
</td>
</tr>
</table>
</div>
</form>	
</body>
</html>